// Copyright (c) 2016 Intel Corporation. All rights reserved.
// Use of this source code is governed by a MIT-style license that can be
// found in the LICENSE file.

#ifndef _FACE_LANDMARK_INFO_H_
#define _FACE_LANDMARK_INFO_H_

#include <node.h>
#include <v8.h>

#include <string>

#include "face_landmark.h"
#include "gen/array_helper.h"
#include "gen/generator_helper.h"

class FaceLandmarkInfo {
 public:
  FaceLandmarkInfo();

  FaceLandmarkInfo(const FaceLandmarkInfo& rhs);

  ~FaceLandmarkInfo();

  FaceLandmarkInfo& operator = (const FaceLandmarkInfo& rhs);

 public:
  ArrayHelper get_landmarks() const {
    return this->landmarks_;
  }

  int32_t get_confidence() const {
    return this->confidence_;
  }

  void SetJavaScriptThis(v8::Local<v8::Object> obj) {
    // Ignore this if you don't need it
    // Typical usage: emit an event on `obj`
  }

 private:
  mutable ArrayHelperStorage landmarks_;

  int32_t confidence_;
  friend class PersonDataInternal;
};

#endif  // _FACE_LANDMARK_INFO_H_
